篇首语:本文由编程笔记#小编为大家整理,主要介绍了Linux常用命令手册相关的知识,希望对你有一定的参考价值。
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
Shell可以执行:
使用type
命令可以区分内部命令和外部命令
于是乎,我们利用 Shell 就可以干下面这些事了:
Shell的主要版本有以下这么多:
使用 ps
命令观察正在执行的shell:
Linux 命令英文全称
inode
值,你可以简单把它想成 C 语言中的指针。它指向了物理硬盘的一个区块,事实上文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。
ln [参数] [源文件或目录] [目标文件或目录]
硬链接 ln myfile hardfile
软链接 ln -s myfile softfile
源文件被删除后,硬链接无影响,软链接失效。
目录只能创建软链接,目录创建链接必须用绝对路径。可对不存在的文件或目录创建软链接;
Linux文件分为两部分:
进程调度器:合理分配 CPU 时间给运行的进程,创造一种所有进程并行运行的错觉。
在Linux内核中,调度器可以分成两个层级:
每个进程必然属于一个特定的调度器类,Linux会根据不同的需求实现不同的调度器类。各个调度器类之间具备一定的层次关系,即在通用调度器选择进程的时候,会从最高优先级的调度器类开始选择,如果通用调度器类没有可运行的进程,就选择下一个调度器类的可用进程,这样逐层递减。
每个CPU维护一个就绪队列,由结构 struct rq 表示,通用调度器直接和 rq 交互,在 rq 中又维护了子就绪队列,这些子就绪队列和具体的调度器类相关,进程入队出队都需要根据调度器类的具体算法。
cmd [options] [arguments]
,options 称为选项,arguments 称为参数
在Linux中,可执行的文件 也进行了分类:
通配符:
*:匹配任何字符和任何数目的字符
?:匹配单一数目的任何字符
[ ]:匹配[ ]之内的任意一个字符
[! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思
指令大全
-l
使用详细格式列表。
-a
列出包括.a开头的隐藏文件的所有文件
-t
用文件和目录的更改时间排序。
-c
根据ctime排序显示
-r
或 --reverse 反向排序。
-R
或 --recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-r
删除文件夹
-f
删除不提示
-i
删除提示
-v
详细显示进行步骤
-a
只修改存取时间
-m
只修改变动时间
-r
eg: touch -r a b
,使b的时间和a相同
-t
指定特定的时间 eg: touch -t 201211142234.50 log.log
-t time [[CC]YY]MMDDhhmm[.SS], C:年前两位
-n
输出后不换行
-e
遇到转义字符特殊处理
eg:
echo "he\\nhe"
显示he\\nhe
echo -e "he\\nhe"
显示he(换行了)he
+n
从第 n 行开始显示
-n
每次查看 n 行数据
+/String
搜寻 String 字符串位置,从其前两行开始查看
-c
清屏再显示
-p
换页时清屏
-m
显示类似于more命令的百分比
-N
显示行号
/
字符串:向下搜索“字符串”的功能
?
字符串:向上搜索“字符串”的功能
n
重复前一个搜索(与 / 或 ? 有关)
N
反向重复前一个搜索(与 / 或 ? 有关)
b
向后翻一页
d
向后翻半页
a
新增,在新的下一行出现
c
取代,取代 n1,n2 之间的行 eg: sed ‘1,2c Hi’ ab
d
删除
i
插入,在新的上一行出现
查看文件中间一段
sed -n '100,200p' filename
sed命令截取tomcat某段时间内的catalina.out日志
sed -n '/2014-06-04 14:00:/,/2014-06-04 15:00:/p' catalina.out > ~/catalina.out.20140604-14
sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > /tmp/123/error.txt
sed -n '/2018-01-01 00:00:/,/2018-01-30 00:00:/p' catalina.out > ./2018.1.error.log.txt
-c
只输出匹配行的计数。
-I
不区分大小写(只适用于单字符)。
-l
只显示文件名
-v
显示不包含匹配文本的所有行。
-n
显示匹配行数据及其行号
-r
递归模式, 可同时处理所有层级子目录里的文件.
(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
打印文本中除掉“1”开头的行和空行的信息
egrep -v "^1|^$" file.txt
egrep 为 grep 的扩充版本
-l
filename 报告行数
-c
filename 报告字节数
-m
filename 报告字符数
-w
filename 报告单词数
查看文件总行数
wc -l catalina.out
152159209 catalina.out
在全盘中找属于用户 xf 的所有扩展名为 html 的文件
find / -name *.html -a -user xf
在根目录下查找文件httpd.conf,表示在整个硬盘查找
find / -name httpd.conf
查找目录
find /(查找范围) -iname '查找关键字' -type d
-b
定位可执行文件。
-m
定位帮助文件。
-s
定位源代码文件。
-u
搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B
指定搜索可执行文件的路径。
-M
指定搜索帮助文件的路径。
-S
指定搜索源代码文件的路径。
-b
不检查空格字符的不同。
-B
不检查空白行。
-i
不检查大小写
-q
仅显示差异而不显示详细信息
eg: diff a b > parch.log 比较两个文件的不同并产生补丁
将某个进程设为后台运行
#后台运行jupyter notebook
nohup jupyter notebook >notebook.log &
nohup jupyter notebook > notebook.log 2>&1 &
(2>&1表示错误信息也重定向到1,即标准输出)
ls -l /dev |more
列出dev目录下的详细信息,又要分页
是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改进
> 输出重定向到一个文件或设备 覆盖原来的文件
>! ................................................强制覆盖原来的文件
>> ...........................................追加.....................
<输入重定向到一个程序
-i&#xff1a;显示套件的相关信息&#xff1b;
-v&#xff1a;显示指令执行过程&#xff1b;
-h 或 --hash&#xff1a;套件安装时列出标记&#xff1b;
rpm -qa
查看现在已经安装了那些软件包
:w filename
将文章以指定的文件名保存起来
:wq
保存并退出
:q!
不保存而强制退出
命令行模式功能键
1&#xff09;插入模式
按「i」
切换进入插入模式「insert mode」&#xff0c;按"i"进入插入模式后是从光标当前位置开始输入文件&#xff1b;
按「a」
进入插入模式后&#xff0c;是从目前光标所在位置的下一个位置开始输入文字&#xff1b;
按「o」
进入插入模式后&#xff0c;是插入新的一行&#xff0c;从行首开始输入文字。
2&#xff09;从插入模式切换为命令行模式
按「ESC」
键。
3&#xff09;移动光标
vi可以直接用键盘上的光标来上下左右移动&#xff0c;但正规的vi是用小写英文字母「h」、「j」、「k」、「l」&#xff0c;分别控制光标左、下、上、右移一格。
按「ctrl」&#43;「b」&#xff1a;屏幕往"后"移动一页。
按「ctrl」&#43;「f」&#xff1a;屏幕往"前"移动一页。
按「ctrl」&#43;「u」&#xff1a;屏幕往"后"移动半页。
按「ctrl」&#43;「d」&#xff1a;屏幕往"前"移动半页。
按数字「0」&#xff1a;移到文章的开头。
按「G」&#xff1a;移动到文章的最后。
按「$」&#xff1a;移动到光标所在行的"行尾"。
按「^」&#xff1a;移动到光标所在行的"行首"
按「w」&#xff1a;光标跳到下个字的开头
按「e」&#xff1a;光标跳到下个字的字尾
按「b」&#xff1a;光标回到上个字的开头
按「#l」&#xff1a;光标移到该行的第#个位置&#xff0c;如&#xff1a;5l,56l。
4&#xff09;删除文字
「x」&#xff1a;每按一次&#xff0c;删除光标所在位置的"后面"一个字符。
「#x」&#xff1a;例如&#xff0c;「6x」表示删除光标所在位置的"后面"6个字符。
「X」&#xff1a;大写的X&#xff0c;每按一次&#xff0c;删除光标所在位置的"前面"一个字符。
「#X」&#xff1a;例如&#xff0c;「20X」表示删除光标所在位置的"前面"20个字符。
「dd」&#xff1a;删除光标所在行。
「#dd」&#xff1a;从光标所在行开始删除#行
5&#xff09;复制
「yw」&#xff1a;将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」&#xff1a;复制#个字到缓冲区
「yy」&#xff1a;复制光标所在行到缓冲区。
「#yy」&#xff1a;例如&#xff0c;「6yy」表示拷贝从光标所在的该行"往下数"6行文字。
「p」&#xff1a;将缓冲区内的字符贴到光标所在位置。注意&#xff1a;所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。
6&#xff09;替换
「r」&#xff1a;替换光标所在处的字符。
「R」&#xff1a;替换光标所到之处的字符&#xff0c;直到按下「ESC」键为止。
7&#xff09;回复上一次操作
「u」&#xff1a;如果您误执行一个命令&#xff0c;可以马上按下「u」&#xff0c;回到上一个操作。按多次"u"可以执行多次回复。
8&#xff09;更改
「cw」&#xff1a;更改光标所在处的字到字尾处
「c#w」&#xff1a;例如&#xff0c;「c3w」表示更改3个字
9&#xff09;跳至指定的行
「ctrl」&#43;「g」列出光标所在行的行号。
「#G」&#xff1a;例如&#xff0c;「15G」&#xff0c;表示移动光标至文章的第15行行首。
给 file 的属主分配读、写、执行权限&#xff08;4&#43;2&#43;1&#xff09;&#xff0c;所在组分配读、执行权限&#xff08;4&#43;1&#xff09;&#xff0c;其他用户分配执行权限
chmod 751 file
lsattr命令是显示chattr命令设置的文件属性
lsattr /etc/profile
chattr 命令移除文件属性
sudo chattr -e /etc/profile
然后就可以修改文件权限了
sudo chmod 777 /etc/profile
改变文件或目录所属组
group可以是用户组的id&#xff0c;也可以是 /etc/group 中用户组的组名
更改某个文件或目录的属主和属组
立即关机
-H 或 --heading 显示各栏位的标题信息列
查看环境变量路径
echo $PATH
vi /etc/profile
vi /root/.bashrc
“/etc/profile”对系统里所有用户都有效&#xff0c;用户主目录下的“.bash_profile”只对这个用户有效。
source ~/.bashrc
-a
显示全部文件系统
-h
文件大小友好显示
-l
只显示本地文件系统
-i
显示inode信息
-T
显示文件系统类型
df -h
查看硬盘和分区
-h 方便阅读的方式
-s 只显示总和的大小
看全部占用的空间
du -sh
看这个目录的大小
du /etc -sh
如何查看内存使用情况
free -m
以Mb为单位显示
查看各进程使用内存情况
PID&#xff1a;进程的ID
USER&#xff1a;进程所有者
PR&#xff1a;进程的优先级别&#xff0c;越小越优先被执行
NInice&#xff1a;值
VIRT&#xff1a;进程占用的虚拟内存
RES&#xff1a;进程占用的物理内存
SHR&#xff1a;进程使用的共享内存
S&#xff1a;进程的状态。S表示休眠&#xff0c;R表示正在运行&#xff0c;Z表示僵死状态&#xff0c;N表示该进程优先值为负数
%CPU&#xff1a;进程占用CPU的使用率
%MEM&#xff1a;进程使用的物理内存和总内存的百分比
TIME&#43;&#xff1a;该进程启动后占用的总的CPU时间&#xff0c;即占用CPU使用时间的累加值
COMMAND&#xff1a;进程启动命令名称
a
显示所有的进程
-a
显示同一终端下的所有程序
e
显示环境变量
f
显示进程间的关系
-H
显示树状结构
r
显示当前终端的程序
T
显示当前终端的所有程序
-au
显示更详细的信息
-aux
显示所有包含其他使用者的行程
-u
指定用户的所有进程
linux查询Java进程
ps -ef | grep java
#ctrl&#43;z:挂起&#xff0c;程序放到后台&#xff0c;程序没有结束。
#jobs:查看被挂起的程序工作号
恢复进程执行时&#xff0c;有两种选择&#xff1a;
-n
时隔多少秒刷新
-d
高亮显示动态变化
端口占用查看
netstat -tunpl | grep 6379
dport--------目的端口 destination
sport--------来源端口 source
input 进入规则&#xff1a;dport指本地&#xff0c;sport指外部。
output 出去规则&#xff1a;dport指外部&#xff0c;sport指本地。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
显示电脑以及操作系统的相关信息
说明正在运行的内核版本
显示的是发行版本信息
lsb_release -a (适用于所有的linux&#xff0c;包括Redhat、SuSE、Debian等发行版&#xff0c;但是在debian下要安装lsb)
查看CPU信息
查看CPU位数
ls 如果在root下ls有lib64 文件夹说明系统64
查看内存信息
在ifcfg-eth0 文件里你可以看到mac&#xff0c;网关等信息
cat /etc/sysconfig/network-scripts/ifcfg-eth0 | grep IPADDR
查看网关
cat /etc/sysconfig/network
#这样的命令会在home目录下添加一个帐号
sudo adduser xxx
#若想给新用户添加root权限
chmod &#43;w /etc/sudoers
修改文件如下&#xff1a;
sudo vi /etc/sudoers
# User privilege specification
root ALL&#61;(ALL) ALL
xxx ALL&#61;(ALL) ALL
#切换用户
su xxx
#切换到root用户
sudo su
sudo -i
#删除某个用户
userdel -r xxx
#查看文件夹权限
ls -ld /home/zzz
#改变权限&#xff0c;只有自己又读写执行权限&#xff0c;同组用户和其他用户无任何权限
sudo chmod -R 0700 /home/zzz
.class 文件需要有main函数&#xff0c;如果文件中有 package XXX; 需要cd 到package的起始路径
如果文件 import 了其他jar包&#xff0c;需要通过 -classpath 参数指定路径
windows下&#xff1a;
java -classpath .;../lib/* cn.edu.ncut.dc.webservice.WebServiceTest
linux下&#xff1a;
java -classpath .:../lib/* cn.edu.ncut.dc.webservice.WebServiceTest
区别是window下分隔符是;
linux下是:
&#xff11;修改配置文件
修改配置文件/etc/apt/apt.conf.d/10periodic 然后0是关闭,将所有值改为0
vim etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists “0”;
APT::Periodic::Download-Upgradeable-Packages “0”;
APT::Periodic::AutocleanInterval “0”;
查看现有内核
dpkg --get-selections |grep linux-image
查看当前内核
uname -a
用编辑器打开 grub 配置文件
sudo vim /etc/default/grub
找到
GRUB_DEFAULT&#61;0
修改为&#xff1a;
GRUB_DEFAULT&#61;"Advanced options for Ubuntu>Ubuntu, with Linux 3.16.0-43-generic"
保存退出&#xff0c;然后执行以下命令更新 Grub 引导
sudo update-grub
更新完成后重启系统
sudo reboot
参考&#xff1a;
【1】看完这篇Linux基本操作就会了
【2】97条Linux运维工程师常用命令